package cn.fl.settlement.transform;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.capital.dto.CapCstStmApplyDTO;
import cn.fl.settlement.vo.CapCstStmApplyVO;
import org.springframework.beans.BeanUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description:  转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据
 * @Description: VO转换数据变成DTO传递到服务端
 * @Description: VO不能在服务端出现
 * Created by Admin on 2019/3/12.
 */
public class CapCstStmApplyVOTransform {


    /**
     * DTO 转  VO
     * @param dto CapCstStmApplyDTO
     * @return CapCstStmApplyVO
     */
    public static CapCstStmApplyVO toVO(CapCstStmApplyDTO dto) {
        CapCstStmApplyVO  vo = null;
        if (dto != null) {
            vo = new CapCstStmApplyVO();
            BeanUtils.copyProperties(dto, vo);
            /*vo.setId(dto.getId());
            vo.setPaySchId(dto.getPaySchId());//支付表ID
            vo.setPaySchNo(dto.getPaySchNo());//支付表号
            vo.setContractNo(dto.getContractNo());//合同号
            vo.setApplyCstId(dto.getApplyCstId());//申请客户ID
            vo.setCstNm(dto.getCstNm());//客户名称
            vo.setCstPhone(dto.getCstPhone());//用户手机号
            vo.setIsRefund(dto.getIsRefund());//是否需退款（1：是，0：否）（SYS0021）
            vo.setEstimateAmt(dto.getEstimateAmt());//预计发生额
            vo.setRealAmt(dto.getRealAmt());//实际发生额
            vo.setStsCd(dto.getStsCd());//状态：1-待付款 2-财务审核中 3-银行处理中 4-结清处理中 5-结清成功 6-退款成功 7-订单关闭
            vo.setTypeCd(dto.getTypeCd());//结清类型：1-正常结清 2-提前结清
            vo.setLicenseNum(dto.getLicenseNum());//车牌号
            vo.setVin(dto.getVin());//车架号
            vo.setProcNo(dto.getProcNo());//流程编号
            vo.setOvertime(dto.getOvertime());//订单超时时间
            vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）（SYS0021）

            vo.setCrtTm(dto.getCrtTm());//创建时间
            vo.setCrtUsrId(dto.getCrtUsrId());//创建人
            vo.setMdfTm(dto.getMdfTm());//修改时间
            vo.setMdfUsrId(dto.getMdfUsrId());//修改人*/
        }
        return vo;
    }

    /**
     * VO 转 DTO
     * @param vo CapCstStmApplyVO
     * @return CapCstStmApplyDTO
     */
    public static CapCstStmApplyDTO toDTO(CapCstStmApplyVO vo) {
        CapCstStmApplyDTO dto = null;
        if (vo != null) {
            dto = new CapCstStmApplyDTO();
            dto.setId(vo.getId());
            dto.setPaySchId(vo.getPaySchId());//支付表ID
            dto.setPaySchNo(vo.getPaySchNo());//支付表号
            dto.setContractNo(vo.getContractNo());//合同号
            dto.setApplyCstId(vo.getApplyCstId());//申请客户ID
            dto.setCstNm(vo.getCstNm());//客户名称
            dto.setCstPhone(vo.getCstPhone());//用户手机号
            dto.setIsRefund(vo.getIsRefund());//是否需退款（1：是，0：否）（SYS0021）
            dto.setEstimateAmt(vo.getEstimateAmt());//预计发生额
            dto.setRealAmt(vo.getRealAmt());//实际发生额
            dto.setStsCd(vo.getStsCd());//状态：1-待付款 2-财务审核中 3-银行处理中 4-结清处理中 5-结清成功 6-退款成功 7-订单关闭
            dto.setTypeCd(vo.getTypeCd());//结清类型：1-正常结清 2-提前结清
            dto.setLicenseNum(vo.getLicenseNum());//车牌号
            dto.setVin(vo.getVin());//车架号
            dto.setProcNo(vo.getProcNo());//流程编号
            dto.setOvertime(vo.getOvertime());//订单超时时间
            dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）（SYS0021）

            dto.setCrtTm(vo.getCrtTm());//创建时间
            dto.setCrtUsrId(vo.getCrtUsrId());//创建人
            dto.setMdfTm(vo.getMdfTm());//修改时间
            dto.setMdfUsrId(vo.getMdfUsrId());//修改人

            dto.setSysCd(vo.getSysCd());
            dto.setOrgCd(vo.getOrgCd());
        }
        return dto;
    }

    /**
     * DTO集合 转 VO集合
     * @param list<CapCstStmApplyDTO>
     * @return List<CapCstStmApplyVO>
     */
    public static List<CapCstStmApplyVO> toVOList(List<CapCstStmApplyDTO> list) {
        List<CapCstStmApplyVO>  voList = new ArrayList<CapCstStmApplyVO>();
        if(CollectionUtils.isNotEmpty(list)){
            for (CapCstStmApplyDTO dto : list) {
                voList.add(toVO(dto));
            }
        }
        return voList;
    }

    /**
     * VO集合 转 DTO集合
     * @param list List<CapCstStmApplyVO>
     * @return List<CapCstStmApplyDTO>
     */
    public static List<CapCstStmApplyDTO> toDTOList(List<CapCstStmApplyVO> list) {
        List<CapCstStmApplyDTO>  dtoList = new ArrayList<CapCstStmApplyDTO>();
        if(CollectionUtils.isNotEmpty(list)){
            for (CapCstStmApplyVO vo : list) {
                dtoList.add(toDTO(vo));
            }
        }
        return dtoList;
    }
}
